草庐IT

c++ - C++中static的含义

全部标签

Java: "[B@1ef9157"背后的语法和含义?二进制/地址?

嘿,我正试图弄清楚[B@前缀在java中的含义。当我尝试打印字节数组时它们会出现。但是,大小为32和大小为4的字节数组的长度相同。始终为“[@B1234567”。这是什么?此外,它们具有仅打印十六进制值的属性。我知道它不能只是二进制打印,因为会出现随机扩展的ascii字符。这是一个byte[]到byte[]哈希表映射打印的示例,其中映射用冒号分隔,这些是4字节键和32字节元素的字节数组。[B@1ef9157:[B@1f82982[B@181ed9e:[B@16d2633[B@27e353:[B@e70e30[B@cb6009:[B@154864a[B@18aaa1e:[B@3c9217

java - Java语法中::的含义

这个问题在这里已经有了答案:::(doublecolon)operatorinJava8(17个回答)关闭7年前。下面代码中::是什么意思?Setset=people.stream().map(Person::getName).collect(Collectors.toCollection(TreeSet::new)); 最佳答案 这是方法引用。在Java8中添加。TreeSet::new指的是TreeSet的默认构造函数。一般A::B指的是A类中的方法B。 关于java-Java语法中

java - "static synthetic"是什么意思?

我正在查看一些从Java字节码获得的反汇编代码。我看到一些声明如下:.methodstaticsyntheticaccess$0()Lcom/package/Sample;我无法弄清楚synthetic或access$0的含义。有人可以帮我理解这部分吗? 最佳答案 在java语言中,内部类可以访问其封闭类的私有(private)成员。但是在Java字节码中,不存在内部类的概念,私有(private)成员是不可访问的。为了解决这个问题,编译器在外部类中创建合成访问器方法。我相信这就是你在这里看到的。access$0只是方法的名称。我不

java - 行家: (use -source 5 or higher to enable static import declarations)

如何使用源5?我试过了mvn-source5test但它没有工作:-)当我通过javac编译文件时,一切正常。 最佳答案 您需要配置maven-compiler-plugin:...org.apache.maven.pluginsmaven-compiler-plugin2.3.21.51.5......编辑:更改示例以使用最新版本的插件。 关于java-行家:(use-source5orhighertoenablestaticimportdeclarations),我们在StackOv

java - "Non-static variable this cannot be referenced from a static context"创建对象时

我编写了以下代码来测试Java中类和对象的概念。publicclassShowBike{privateclassBicycle{publicintgear=0;publicBicycle(intv){gear=v;}}publicstaticvoidmain(){Bicyclebike=newBicycle(5);System.out.println(bike.gear);}}为什么在编译过程中会出现以下错误?ShowBike.java:12:non-staticvariablethiscannotbereferencedfromastaticcontextBicyclebike=ne

java - 什么时候不要在 Java 中使用 static 关键字?

什么时候在Java中的方法签名上使用static关键字被认为是不好的做法?如果一个方法基于一些参数执行一个函数,并且不需要访问非静态字段,那么您不总是希望这些类型的方法是静态的吗? 最佳答案 在大型Java应用程序中您将遇到的两个最大弊端是静态方法,纯函数除外*可变静态字段这些在一定程度上破坏了您代码的模块化、可扩展性和可测试性,我意识到在有限的时间和空间内我不可能希望让您相信。*“纯函数”是不修改任何状态并且其结果仅取决于提供给它的参数的任何方法。因此,例如,任何执行I/O(直接或间接)的函数都不是纯函数,但Math.sqrt()

java : in what order are static final fields initialized?

好的,假设我有一个看起来像这样的类(class):publicclassSignupServletextendsHttpServlet{privatestaticfinalLoggerSERVLET_LOGGER=COMPANYLog.open(SignupServlet.class);privatestaticfinalExceptionMessageHandlerhandler=newExceptionMessageHandler();privatestaticfinalSignupServletObservableAgentsignupObservableAgent=newSig

java - 我们应该什么时候使用 "public static final String"?

我见过很多人写的代码publicstaticfinalStringmystring=...然后只使用一个值。为什么他们必须这样做?为什么他们必须在使用之前将值初始化为final?更新好的,谢谢大家的回答,我理解这些键的含义(publicstaticfinal)。我不明白的是为什么人们会使用它,即使常量只会在一个地方并且只在同一个类中使用。为什么要宣布它?为什么我们不只使用变量? 最佳答案 final表示变量的值不会改变——也就是说,一个constant,它的值在声明之后就不能被修改。当你想创建一个String时使用publicfin

java - Android Studio 中@override 的含义

这个问题在这里已经有了答案:Android@Overrideusage[duplicate](4个回答)WhendoyouuseJava's@Overrideannotationandwhy?(27个回答)关闭3年前。我是AndroidStudio的新手,我想知道AndroidStudio中@Override语句的用途。 最佳答案 @Override是Javaannotation.它告诉编译器下面的方法overrides其superclass的一种方法.例如,假设您实现了一个Person类。publicclassPerson{pub

java - 'public static final' 还是带有 setter/getter 的 'private static final'?

在Java中,变量应该保持私有(private)以实现更好的封装,但是静态常量呢?这个:publicstaticfinalintFOO=5;结果与此等价:privatestaticfinalintFOO=5;...publicstaticgetFoo(){returnFOO;}但哪种做法更好? 最佳答案 不直接在代码中使用常量的原因之一。假设FOO稍后可能会更改(但仍保持不变),例如publicstaticfinalintFOO=10;。只要没有人愚蠢到直接硬编码值,就不应该破坏任何东西吗?没有。Java编译器会将上面的Foo等常量